package trader;
public interface BrokerModel {
// Broker model state change listener registration methods
  /* -------------------------------------------------------------
   * Adds requester to the list of objects to be notified when an
   * object(Customer, Portfolio or Stock) in the broker model
   * alters state
   */
    public void addChangeListener(BrokerView bv)
    throws BrokerException;
    
// iteration 1 Customer segment broker model methods
// Customer segment state change methods
    /**-------------------------------------------------------------
     * Adds the Customer to the broker model
     */
    public void addCustomer(Customer cust)
    throws BrokerException;
    
    /**-------------------------------------------------------------
     * Deletes the customer from the broker model
     */
    public void deleteCustomer(Customer cust)
    throws BrokerException;
    
    /**-------------------------------------------------------------
     * Updates the customer in the broker model
     */
    public void updateCustomer(Customer cust)
    throws BrokerException;
    
// Customer segment state query methods
    /**-------------------------------------------------------------
     * Given an id, returns the Customer from the model
     */
    public Customer getCustomer(String id)
    throws BrokerException;
    
    
    /**-------------------------------------------------------------
     * Returns all customers in the broker model
     */
    public Customer[] getAllCustomers()
    throws BrokerException;
    
// Portfolio segment - TBD in future iteration
// Add Portfolio segment state change methods
// Add Portfolio segment state query methods
    
// Stock segment - TBD in future iteration
// Add Stock segment state change methods
// Add Stock segment state query methods
}
